#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Time    : 2020/2/7 14:08
# @FileName: module.py.py
# @Software: PyCharm

# 本篇概览：
# 简要介绍模块的工作原理，如何探索模块>>获悉模块，概述标准库

# 1、模块
# 模块并不是用来执行操作的，而是用于定义变量、函数、类等。
# 模块让代码可以重用

# 2、变量__name__， 在主程序中的值是'__main__',
# 在导入的模块这个变量被设置为该模块的名称。

# 3、模块可用： 1、放在path对应目录下； 2、告诉解释器去哪里找（添加PYTHONPATH变量）

# 4、包， 一个目录，包含模块
# 特征： 包目录包含__init__.py
# 将模块加入包，只需将模块文件放在包目录中。
# 还可以在包中嵌套其他包

# 5、如何探索一个模块
# 1） 导入
# 2） 使用dir 查看模块包含哪些东西——列出对象的所有属性
# 以下划线打头并非外部使用，可以用下面的列表推导的方法过滤掉
# import numpy

# print([n for n in dir(numpy) if not n.startswith('_')])
# 3) 使用__all__
# print(numpy.__all__)

# 4) 使用help函数获取有关函数信息
# help(numpy)

# 5) 文档
# print(range.__doc__)

# 了解一个模块， 查看模块本身最快

# 6、标准库一些常用的：
# sys：访问与python解释器紧密相关的变量和函数
# os： 让你能够访问多个操作系统服务
# time：获取当前函数、操作时间和日期、从字符串读取日期、将日期格式化为字符串的函数
# （新纪元：UNIX 1970年一月一日0时）
# random：生成（伪）随机数
# shelve和json 数据存储相关
# re 正则表达式相关
